/***********************************************************************************
  * File:			oled.H
  * Version:		V1.0
  * Date:			2021.5.26
  * Description:	OLED应用函数接口
***********************************************************************************/
#ifndef __OLED_H__
#define __OLED_H__ 

/* 头文件 */
#include "board.h"
#include <string.h>

#define OLED_SIP_PORT           GPIOC     //I2C2
#define OLED_SIP_SCK            GPIO_PIN_4
#define OLED_SIP_SDA            GPIO_PIN_5
#define OLED_GPIO_CLK           RCC_APB2_PERIPH_GPIOC

#define OLED_SCLK_Clr()         GPIO_ResetBits(OLED_SIP_PORT,OLED_SIP_SCK)
#define OLED_SCLK_Set()         GPIO_SetBits(OLED_SIP_PORT,OLED_SIP_SCK)//SCL

#define OLED_SDIN_Clr()         GPIO_ResetBits(OLED_SIP_PORT,OLED_SIP_SDA)//DIN
#define OLED_SDIN_Set()         GPIO_SetBits(OLED_SIP_PORT,OLED_SIP_SDA)


#define OLED_CMD  0
#define OLED_DATA 1
#define u8 unsigned char
#define u32 unsigned int

void OLED_ClearPoint(u8 x,u8 y);
void OLED_ColorTurn(u8 i);
void OLED_DisplayTurn(u8 i);
void I2C_Start(void);
void I2C_Stop(void);
void I2C_WaitAck(void);
void Send_Byte(u8 dat);
void OLED_WR_Byte(u8 dat,u8 mode);
void OLED_DisPlay_On(void);
void OLED_DisPlay_Off(void);
void OLED_Refresh(void);
void OLED_Clear(void);
void OLED_DrawPoint(u8 x,u8 y,u8 t);
void OLED_DrawLine(u8 x1,u8 y1,u8 x2,u8 y2,u8 mode);
void OLED_DrawCircle(u8 x,u8 y,u8 r);
void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 size1,u8 mode);
void OLED_ShowChar6x8(u8 x,u8 y,u8 chr,u8 mode);
void OLED_ShowString(u8 x,u8 y,u8 *chr,u8 size1,u8 mode);
void OLED_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 size1,u8 mode);
void OLED_ShowChinese(u8 x,u8 y,u8 num,u8 size1,u8 mode);
void OLED_ScrollDisplay(u8 num,u8 space,u8 mode);
void OLED_ShowPicture(u8 x,u8 y,u8 sizex,u8 sizey,u8 BMP[],u8 mode);
void OLED_Init(void);
void OLED_ClearAndShowString(u8 x,u8 y,u8 *chr,u8 size1);
void OLED_Refresh_Line(char* ctx);

#endif
